import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    loginFlag: false,
    registerFlag: false,
    drawer: false,
    userInfo: JSON.parse(window.sessionStorage.getItem('user')),
    token: JSON.parse(window.sessionStorage.getItem('token')),
    // 音乐的url
    musicId: '',
    // 音乐的播放状态
    isPlay: false,
    // 当前播放的歌单
    musicList: [],
    // 当前播放歌单的id
    musicListId: '',
    // 是否登录
    isLogin: false,
    // 当前播放音乐的索引
    currentIndex: -1,
    // 音乐详情卡片的显隐
    isMusicDetailCardShow: false,
    // 实时播放时长
    currentTime: 0,
    // 音乐是否在加载中
    isMusicLoad: false,
    // 用户喜欢的音乐列表
    likeMuiscList: [],


  },
  getters: {

  },
  mutations: {
    getUserInfo(state) {
      state.userInfo = JSON.parse(window.sessionStorage.getItem('user'))
      state.token = JSON.parse(window.sessionStorage.getItem('token'))

    },
    logout(state) {
      state.userInfo = null
    }, // 更新音乐url
    updateMusicId(state, musicId) {
      state.musicId = musicId;
      // console.log('updateMusicId');
    },
    // 修改播放状态
    changePlayState(state, isPlay) {
      state.isPlay = isPlay;
      // console.log('changePlayState');
    },
    // 更新歌单列表和歌单id
    updateMusicList(state, payload) {
      // 当歌单id发生变化时,重置当前播放音乐索引
      if (payload.musicListId != state.musicListId) {
        state.musicListId = payload.musicListId;
        state.currentIndex = -1;
      }
      let musicList = payload.musicList.slice(0)
      state.musicList = musicList;
      // console.log('updateMusicList');
    },
    // 当前播放音乐的索引
    updateCurrentIndex(state, index) {
      // console.log('updateCurrentIndex');
      state.currentIndex = index;
      // console.log(state.currentIndex);
    },
    updateCurrentTime(state, currentTime) {
      state.currentTime = currentTime;
    },
    // 更新音乐的加载状态
    updateMusicLoadState(state, isLoad) {
      state.isMusicLoad = isLoad;
    },

  },
  actions: {
  },
  modules: {
  }
})
